Add a workspace.exclude key
authorAlex Crichton <alex@alexcrichton.com>
Thu, 16 Mar 2017 21:50:23 +0000 (14:50 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Thu, 16 Mar 2017 21:50:23 +0000 (14:50 -0700)
commit67364baa9f8d721b48d46ad64700b5d12dca5adf
tree1b230ee458a3fa2f35031f7e2aeb355f2a86227f
parent19fdb308cdbb25faf4f1e25a71351d8d603fa447
Add a workspace.exclude key

This commit adds a new key to the `Cargo.toml` manifest, `workspace.exclude`.
This new key is a list of strings which is an array of directories that are
excluded from the workspace explicitly. This is intended for use cases such as
vendoring where path dependencies into a vendored directory don't want to pull
in the workspace dependencies.

There's a number of use cases mentioned on #3192 which I believe should all be
covered with this strategy. At a bare minimum it should suffice to `exclude`
every directory and then just explicitly whitelist crates through `members`
through inclusion, and that should give precise control over the structure of a
workspace.

Closes #3192
src/cargo/core/workspace.rs
src/cargo/util/toml.rs
src/doc/manifest.md
tests/workspaces.rs